/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.aksw.treelearning.pseudomeasures;

import java.util.List;
import org.aksw.treelearning.data.Mapping;

/**
 *
 * @author ngonga
 */
public interface Measure {

    public double getPseudoFMeasure(List<String> sourceUris, List<String> targetUris,
            Mapping result, double beta);

    /**
     * Computes the pseudo-precision, which is basically how well the mapping
     * maps one single s to one single t
     *
     * @param sourceUris List of source uris
     * @param targetUris List of target uris
     * @param result Mapping of source to targer uris
     * @return Pseudo precision score
     */
    public double getPseudoPrecision(Mapping result);

    /**
     * The assumption here is a follows. We compute how many of the s and t were
     * mapped.
     *
     * @param sourceUris Uris in source cache
     * @param targetUris Uris in target cache
     * @param result Mapping computed by our learner
     * @param Run mapping minimally and apply filtering. Compare the runtime of
     * both approaches
     * @return Pseudo recall
     */
    public double getPseudoRecall(List<String> sourceUris, List<String> targetUris,
            Mapping result);
}
